Remote direct memory access (RDMA) is a direct memory access from the memory of one computer into that of another without using the operating systems of the computing systems. This memory access operation may be used in a computing environment to provide a high-throughput, low-latency network, which can be useful in clustered computing environments where multiple systems may frequently share data for processing. To provide the connections between the two systems, RDMA may use control or management channels and what are known as queue pairs to request and configure the necessary channels for the communications. For example, an application on the first computing system may post a first request in the queue pair to write data to the second computing system. Once posted, a request may be delivered from the first computing system to the second computing system to initiate the configuration of data channels for the communication.
However, although RDMA is useful in communicating data between two physical computing systems, difficulties arise when virtual machines attempt to leverage the operations of RDMA. In particular, when RDMA packets are received at a queue pair for a host computing system that is required to be shared by the virtual machines, the host computing system may have difficulty in forwarding the packets to the corresponding virtual machine. Further, the host computing systems may have difficulty in managing the outgoing RDMA packets from the virtual machines when the virtual machines are required to share a queue pair.